This invention relates generally to a synchronization system that synchronizes data between multiple datasets. More particularly, the invention relates to a method for such a synchronization system to filter or restrict the data that is synchronized between the datasets.
The prior art includes a number of different synchronization systems for synchronizing data between multiple datasets. For example, U.S. Pat. Nos. 5,727,202 and 5,710,922 disclose basic data synchronization systems, while U.S. Pat. Nos. 6,275,831, 6,295,541 and 6,401,104, all assigned to the assignee of this application, disclose more sophisticated synchronization systems. However, there is not much disclosure in the prior art related to filtering the data that is synchronized between the multiple datasets. U.S. Pat. Nos. 6,141,664 (the '664 patent) and 6,212,529 (the '529 patent) disclose the basic concept of filtering the data that is synchronized between multiple datasets. The '664 patent involves filtering dated records so that only records that fall within a specified date range are synchronized. The '529 patent involves filtering data records based on whether a text field of the data records matches a filter criterion. The '664 patent and the '529 patent generally disclose methods of applying a filter to each record of a dataset each time a synchronization is performed to determine which records are to be synchronized and which records are to be excluded from synchronization. If a record passes the filter, then it is synchronized between the datasets. If a record does not pass the filter, then the record is deleted from the dataset to which the filter applies.
The preferred embodiments in the '664 patent and the '529 patent are described in terms of a simple synchronization system involving a single synchronization engine and two databases. There is no mention in these specifications of the methods being applied to more complex synchronization environments, such as a scalable server-based synchronization system, which is capable of serving many different user accounts. Efficiency of data processing is advantageous in such systems, as well as in systems involving relatively large databases. A method is needed that provides better data processing efficiency, while maintaining data integrity.